package com.shop.cereshop.commons.domain.im.tx.resp.ocr;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

/**
 * 身份证识别响应实体类
 * 参考文档：https://cloud.tencent.com/document/product/866/33524
 */
@Data
public class IdCardOCRResp {

    /**
     * 姓名（人像面）
     */
    @JsonProperty("Name")
    private String name;

    /**
     * 性别（人像面）
     */
    @JsonProperty("Sex")
    private String sex;

    /**
     * 民族（人像面）
     */
    @JsonProperty("Nation")
    private String nation;

    /**
     * 出生日期（人像面）
     */
    @JsonProperty("Birth")
    private String birth;

    /**
     * 地址（人像面）
     */
    @JsonProperty("Address")
    private String address;

    /**
     * 身份证号（人像面）
     */
    @JsonProperty("IdNum")
    private String idNum;

    /**
     * 发证机关（国徽面）
     */
    @JsonProperty("Authority")
    private String authority;

    /**
     * 证件有效期（国徽面）
     */
    @JsonProperty("ValidDate")
    private String validDate;

    /**
     * 扩展信息
     * 当请求参数Config中配置了CropIdCard或CropPortrait时，返回裁剪后的身份证图片和人像照片的base64编码
     */
    @JsonProperty("AdvancedInfo")
    private String advancedInfo;

    /**
     * 告警信息
     * 当请求参数Config中配置了告警功能时，返回对应的告警信息
     */
    @JsonProperty("ReflectDetailInfos")
    private List<ReflectDetailInfo> reflectDetailInfos;

    /**
     * 唯一请求 ID，由服务端生成，每次请求都会返回
     */
    @JsonProperty("RequestId")
    private String requestId;
    @JsonProperty("ErrorMsg")
    private String errorMsg;
    /**
     * 告警详细信息
     */
    @Data
    public static class ReflectDetailInfo {
        /**
         * 告警类型
         */
        @JsonProperty("Type")
        private String type;

        /**
         * 告警信息
         */
        @JsonProperty("Message")
        private String message;
    }
}
